package com.css.dzj.dzjportal.modules.supervision.service;

import com.css.dzj.dzjportal.modules.supervision.entity.SupervisionMatterEntity;
import com.querydsl.core.QueryResults;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 监管事项清单service
 */
public interface SupervisionService {

    /**
     * 添加监管事项清单
     * @param supervisionMatterEntity
     */
    void add(SupervisionMatterEntity supervisionMatterEntity);

    /**
     * 通过id获取监管事项清单
     * @param id
     * @return
     */
    SupervisionMatterEntity queryById(String id);

    /**
     * 修改监管事项清单
     * @param supervisionMatterEntity
     */
    void update(SupervisionMatterEntity supervisionMatterEntity);

    /**
     * 多条件分页查询监管事项清单
     * @param supervisionNumber
     * @param supervisionName
     * @param supervisionObject
     * @param permitType
     * @param supervisionForm
     * @param publicLocation
     * @param status
     * @param pageable
     * @return
     */
    QueryResults<SupervisionMatterEntity> listPage(String supervisionNumber, String supervisionName, String supervisionObject, String permitType, String supervisionForm, String publicLocation, String status, Pageable pageable);

    /**
     * 分页查询所有监管事项清单
     * @param pageable
     * @return
     */
    QueryResults<SupervisionMatterEntity> getPageAll(Pageable pageable);

    /**
     * 分页查询所有已公开的监管事项清单
     * @param supervisionName
     * @param publicLocation
     * @param pageable
     * @return
     */
    QueryResults<SupervisionMatterEntity> queryPublic(String supervisionName, String publicLocation, Pageable pageable);

    /**
     *@Author weitao
     *@Date 13:49 2020/4/29
     * 根据参数查询，为导出提供
     */
     List<SupervisionMatterEntity>  superList(String supervisionNumber, String supervisionName, String supervisionSubItem, String supervisionDept, String permitName, String permitType);

    /**
     * 根据参数导出监管事项清单
     */
    void exportSuperToExcel(HttpServletResponse response, List<SupervisionMatterEntity> superList);

    /**
     * 导出选中行数据 通过ids
     */
    List<SupervisionMatterEntity> queryByIds(String ids);

    /**
     * 多条件查询监管事项清单
     */
    QueryResults<SupervisionMatterEntity> wtlistPage(String supervisionNumber, String supervisionName, String supervisionSubItem, String supervisionDept, String permitName, String permitType, Pageable pageable);

    /**
     * 统计数
     */
    String getSupervCount();
}
